Chapter1 - 概述

1.1 计算机网络定义与分类

一、计算机网络的定义

计算机网络(Computer network)是一些互相连接的、自治的计算机的集合

  • 网络的功能
    • 连通性
    • 资源共享
  • 计算机网络与分布式系统(Distributed system)
    • 在分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的,常通过覆盖一层专用软件,如: Hadoop
    • 计算机网络不具有这种统一性
    • 分布式系统是建立在网络之上的

二、计算机网络的分类

  • 按照作用范围分类(或覆盖范围)

    • 广域网 WAN (Wide Area Network)
      • 作用范围几十到几千公里
    • 局域网 LAN (Local Area Network)
      • 通常局限在一个建筑物或一个单位内
    • 城域网 MAN (Metropolitan Area Network)
      • 作用范围通常是一个城市
      • 常采用局域网技术建立
    • 个人区域网 PAN (Personal Area Network)
      • 在个人工作区域实现各种电子设备互联的网络,采用无线技术(如蓝牙),因此又称为 WPAN(Wireless PAN),作用范围大约在10m左右
  • 从网络的使用者进行分类

    • 公用网(public network)
    • 专用网(private network)

1.2 计算机网络与Internet发展概述

一、计算机网络发展的几个阶段

  1. 主机-终端时代 (20世纪50-60年代)
    • 计算机以大型机的形式存在
    • 终端通过专用线路或通信网络连接搭配主机上,实现多用户远程共享主机计算资源
    • 终端只负责从键盘发送数据和接受数据到屏幕,实际的处理和计算全都在大型主机上进行
  2. 主机互连时代 (20世纪60-70年代)
    • 需求:不同地区之间的主机需要共享、传输数据
    • 1969年,ARPARENT 建立:
  3. 网络时代 (20世纪70年代之后)
    • 1978年,TCP/IP协议诞生
    • 1983年,ARPANET采用TCP/IP协议
    • 加州大学伯克利分校推出内含TCP/IP的BSD UNIX
    • 80年代起,以IBM PC为代表的微机大量普及,微机之间的互连需求推动了局域网技术的发展
    • 随后局域网间互连需求又推动了Internet的快速发展
      • 网络的发展以通信技术为基础,反过来又带动通信技术发展,例如:光纤通信使得宽带网络互连成为可能,网络带来的数据传输需求又带动光纤通信的传输速率不断提高.

二、Internet发展概述

  1. 第一阶段:ARPANET->网际互联发展
  2. 第二阶段:建成三级结构的Internet
  3. 第三阶段:形成多层次ISP结构的Internet
    • IP地址、域名管理等均交由专门企业运营 (开始商用)

注意:Internet 特指现在的互联网(又称为因特网),internet 指多个网络互连形成的网络

1.3 计算机网络的性能

一、性能指标

  • 速率
    • 传送数据的速率,即数据速率(data rate)或比特率(bit rate)
    • 单位:b/s,也写为bps (bit per second),kb/s、Mb/s、Gb/s、…
    • 多数情况下,数据传输方式是以串行方式进行传输的,因而单位常以bit,即二进制位为单位,而非字节Byte。
  • 带宽(bandwidth)
    • 有两种含义:
      1. 原本指某个信号具有的频带宽度,如电话线上信号带宽为3.1kHz(300—3.4kHz);通信线路允许通过的信号频带范围称为线路带宽
      2. 计算机网络中,指通信线路传送数据的能力,即最高数据率
  • 吞吐量(throughput)
    • 单位时间内通过网络的数据量(能传输多少数据)
    • 速率与带宽通常是指在一条线路或一条信道上的指标,而吞吐量通常是指一个实际网络的测量指标
  • 时延(delay, latency)
    • 指数据从网络(或链路)一端传送到另一端所需的时间,又称为延迟
    • 网络时延由多个部分组成
      • 发送时延
        • 又称传输时延,是主机或路由器向数字信道上发送数据的速度
        • 计算公式:发送时延 = $\frac{数据块长度 (b)}{发送速率 (b/s)}$
      • 传播时延
        • 数据在信道中传播一定距离所花费的时间
        • 计算公式:传播时延 = $\frac{信道长度 (m)}{电磁波在信道上的传播速率 (m/s)}$
      • 处理时延
      • 排队时延
  • 时延带宽积
    • 又称为以比特为单位的链路长度
  • 往返时间(RTT—Round-Trip Time)
    • 又称为环路时延、回路时延
    • 从发送方发送数据开始,到发送方收到来自接收方的应答所经历的时间
    • 注意:
      1. 往返时间不是单向的时延*2,因为在复杂网络中,往返的线路或信道可能不同
      2. 往返时间更容易获取,因为单向的时延需要通过卫星同步两台主机的时钟
      3. 往返时间更有实际意义,因为真实通讯中大多是相互应答
  • 利用率
    • 包括信道利用率和网络利用率
    • 信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)
    • 网络利用率则是全网络的信道利用率的加权平均值

二、非性能指标

  • 费用
  • 质量
  • 标准化
  • 可靠性
  • 可扩展性和可升级性
  • 易于管理和维护

1.4 计算机网络体系结构

一、网络体系结构概述

  • 计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合
  • 分层原因:实现信息在网络中传输非常复杂,分层是将复杂问题简单化、局部化的有效方法
    • 传输介质:有线(铜线、光纤)、无线
    • 连接到网络中的计算机硬软件平台各不相同
    • 通信双方距离可长可短(可能需经过多条链路)
    • 需保证信息传输的可靠性、顺序性
    • 需满足各种应用的需要:文件传输、电子邮件、实时多媒体、…
  • 典型的网络体系结构
    • 1974年,IBM SNA(System Network Architecture)
    • 1977年,ISO开始制订OSI(Open System Interconnection Reference Model),1983年形成标准
    • TCP/IP

二、具有七层和五层协议的体系结构

  • 数据在各层之间的传递过程
    • 主机1发送的应用程序数据在向下一层层传输时会加上特定的 Header 便于识别,类比寄快递的过程。
    • 协议数据单元PDU(Protocol Data Unit):对等层次之间传送的数据单位(即文件大小多少为1个单位进行传输)
    • 有些文献将多个层次的协议称为协议栈(protocol stack)

三、实体、协议、服务和服务访问点

基本概念

  • **实体(entity)**:任何可发送或接收信息的硬件或软件进程,在网络结构中不规定某一层是由软件实现还是硬件实现
  • **协议(protocol)**:控制两个对等实体进行通信的规则的集合,如定义文件传输的单位大小,字节编码等规则
  • 在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务(service);要实现本层协议,还需要使用下层所提供的服务
  • 同一系统相邻两层的实体进行交互的地方,称为服务访问点SAP(Service Access Point)

几个概念之间的区别与联系

  • 接口与服务的关系:通过接口提供服务
  • 协议与服务的关系:服务建立在相同的协议之上
  • 协议是水平的,服务是垂直的:同层之间要确保协议一致才能正常,服务只需要解决自己的功能,不需要关系其他层
  • 协议对上层的服务用户是透明的,服务用户只能看到下层提供的服务

网络协议的经典问题:两军问题(蓝白军问题)

  • 蓝军中间的白军使得信息的交换不可靠
  • 在现实中也是假设大部分的信息是可靠的,但也存在着误码率等因素
  • 在日常的环境下,如果信道的可靠性降得比较低,就不能保证信息的传输

四、TCP/IP的体系结构


五、分层结构的优缺点(重点)

优势

  • 各层之间是独立的。每一层不需要知道下层是如何实现的,只需要知道层间的接口和所提供的服务。
  • 灵活性好。当任何一层发生变化时,只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。
  • 结构上可分割开。各层都可以采用最合适的技术来实现。
  • 易于实现和维护。
  • 能促进标准化工作。因为每一层的功能及其所提供的服务都已有了精确的说明。

不足

  • 层次数量与内容不是最佳的,会话层和表示层这两层几乎是空的,而数据链路层和网络层包含的内容太多,有很多的子层插入,每个子层都有不同的功能。
  • 模型及相应的服务定义和协议及其复杂,它们很难实现,有些功能,如流量控制和差错控制,都会在每一层上重复出现,降低了系统的效率。

1.5 网络标准化

一、概述

  • 标准化对于计算机网络至关重要
    • 为了实现不同厂商的软硬件互联,大家必须遵守统一的标准
  • 标准的分类
    • 法定标准:由权威机构制定的正式的、合法的标准,如:国标,ISO
    • 事实标准:某些公司的产品在竞争中占据了主流,时间长了,这些产品中的协议和技术就成了标准。如TCP/IP,大家都按照他的标准去适配生产。

二、标准化组织

  • ITU-T
    • 国际电信联盟电信委员会(International Telecommunication Union),前身是国际电报电话咨询委员会(CCITT)
    • 各国按条约建立的机构,主要成员是各国的邮电部,主要负责制定电信行业的标准
    • 比如4G,5G,6G等等。
  • ISO
    • 国际标准化组织(International Standard Organization)
    • 义务性组织,主要成员是各大公司技术人员、大学教授、政府官员。
    • 负责各行业的标准制定,主要贡献:ISO/OSI RM
  • IEEE
    • 电子、电气学工程师学会(The Institute of Electrical and Electronics Engineers)
    • 专业性组织,学术团体,主要贡献:IEEE 802系列局域网标准。
  • IETF
    • Internet工程任务组(Internet Engineering Task Force)
    • 负责Internet相关标准的制定
    • 标准形式:RFC xxxx,RFC指Request for Comment,可以免费下载

附:基本指令介绍

1. PING

Ping的作用与原理

  • 简单来说,「ping」是用来探测本机与网络中另一主机之间是否可达的命令,如果两台主机之间ping不通,则表明这两台主机不能建立起连接。ping是定位网络通不通的一个重要手段。

  • ping 命令是基于 ICMP 协议来工作的,「 ICMP 」全称为 Internet 控制报文协议(Internet Control Message Protocol)。ping 命令会发送一份ICMP回显请求报文给目标主机,并等待目标主机返回ICMP回显应答。因为ICMP协议会要求目标主机在收到消息之后,必须返回ICMP应答消息给源主机,如果源主机在一定时间内收到了目标主机的应答,则表明两台主机之间网络是可达的。

举一个例子来描述「ping」命令的工作过程:

1) 假设有两个主机,主机A(192.168.0.1)和主机B(192.168.0.2),现在我们要监测主机A和主机B之间网络是否可达,那么我们在主机A上输入命令:ping 192.168.0.2;

2) 此时,ping命令会在主机A上构建一个 ICMP的请求数据包(数据包里的内容后面再详述),然后 ICMP协议会将这个数据包以及目标IP(192.168.0.2)等信息一同交给IP层协议;

3) IP层协议得到这些信息后,将源地址(即本机IP)、目标地址(即目标IP:192.168.0.2)、再加上一些其它的控制信息,构建成一个IP数据包;

4) IP数据包构建完成后,还不够,还需要加上MAC地址,因此,还需要通过ARP映射表找出目标IP所对应的MAC地址。当拿到了目标主机的MAC地址和本机MAC后,一并交给数据链路层,组装成一个数据帧,依据以太网的介质访问规则,将它们传送出出去;

5) 当主机B收到这个数据帧之后,会首先检查它的目标MAC地址是不是本机,如果是就接收下来处理,接收之后会检查这个数据帧,将数据帧中的IP数据包取出来,交给本机的IP层协议,然后IP层协议检查完之后,再将ICMP数据包取出来交给ICMP协议处理,当这一步也处理完成之后,就会构建一个ICMP应答数据包,回发给主机A;

6) 在一定的时间内,如果主机A收到了应答包,则说明它与主机B之间网络可达,如果没有收到,则说明网络不可达。除了监测是否可达以外,还可以利用应答时间和发起时间之间的差值,计算出数据包的延迟耗时。

多次 Ping 同一个网址,时延不同的原因是什么?

我的回答:
网络时延包括发送时延、传播时延、处理时延、排队时延。而在不同时刻路由表中各个中间节点的处理时延、排队时延以及转发数据时的发送时延等等可能因为各种因素而不同,因此总时延往往不一样。

Ping 不通的几种可能原因

ping不通的几种可能原因

2. Tracert

Tracert的作用及原理

  • Tracert 程序关键是对 IP 头部生存时间(time to live)TTL 字段的使用,程序实现是向目的主机发送一个 ICMP 回显请求报文,初始时 TTL 等于 1 ,这样当该数据报抵达途中的第一个路由器时,TTL 的值就被减为 0,导致发送超时错误,因此该路由生成一份 ICMP 超时差错报文返回给源主机。
  • 随后,主机将数据报的 TTL 值递增 1 ,以便 IP 报能传送到下一个路由器,并由下一个路由器生成 ICMP 超时差错报文返回给源主机。不断重复这个过程,直到数据报达到目的主机或超过跳数限制,到达目的主机后,目的主机返回 ICMP 回显应答报文。
  • 这样,源主机只需要对返回的每一份 ICMP 报文进行解析处理,就可以掌握数据报从源主机到达目的主机途中所经过的路由信息。
  • 每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址, 三个包每次来回所花时间
  • 最终,Tracert将会显示一个返回 ICMP“超时”消息的中间路由器的顺序列表。
  • 这里有个问题是我不太确定,这三个延时指的是从上个节点到这个节点的延迟时间,还是从本机到当前节点的往返时间。
举一个例子来描述「Tracert」命令的工作过程:

Traceroute/Tracert的实现都借助了TTL:通过向目的地址发送一系列的探测包,设置探测包的TTL初始值分别为1,2,3…,根据返回的超时通知(ICMP Time Exceeded Message)得到源地址与目的地址之间的每一跳路由信息。

  1. 从源地址发出一个UDP探测包到目的地址,并将TTL设置为1;

  2. 到达路由器时,将TTL减1;

  3. 当TTL变为0时,包被丢弃,路由器向源地址发回一个ICMP超时通知(ICMP Time Exceeded Message),内含发送IP包的源地址,IP包的所有内容及路由器的IP地址;

  4. 当源地址收到该ICMP包时,显示这一跳路由信息;

  5. 重复1~5,并每次设置TTL加1;

  6. 直至目标地址收到探测数据包,并返回ICMP回应答复(ICMPEcho Reply);

  7. 当源地址收到ICMP Echo Reply包时停止tracert。

Tracert的用法

用法:

1
2
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]
[-R] [-S srcaddr] [-4] [-6] target_name

选项:

1
2
3
4
5
6
7
8
-d                 不将地址解析成主机名。
-h maximum_hops 搜索目标的最大跃点数。
-j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。
-w timeout 等待每个回复的超时时间(以毫秒为单位)。
-R 跟踪往返行程路径(仅适用于 IPv6)。
-S srcaddr 要使用的源地址(仅适用于 IPv6)。
-4 强制使用 IPv4。
-6 强制使用 IPv6。

Tracert 与 Ping 的区别

  • tracert 在某种方面与 ping 类似,它也是向目的端发出一些网络报,返回这些包的响应结果,如果有响应也返回响应的延迟。
  • tracertping 的最大区别在于 tracert 是把端到端的线路按线路所经过的路由器分成多段,然后以每段返回响应与延迟。如果端到端不同,则用该工具可以检查到那个路由器之前都能正常响应,到哪个路由器就不能响应了,这样就很容易知道如果线路出现故障,则故障源可能出在哪里。
  • 另一方面,如果在线路中某个路由器的路由配置不当,导致路由循环,用 tracert 工具可以方便地发现问题。即 tracert 一端到另一端时,发现到某一路由器之后,出现的下一个路由器正是上一个路由器,结果出现循环,两个路由器返回的结果中间来回交替出现,这时往往是那个路由器的路由配置指向了前一个路由器导致路由循环了

reference

考点积累

常考知识点

  • 是否采用分组存储转发路由选择机制是点对点式网络与广播式网络的重要区别。

    • 广域网基本都属于点对点网络
    • 局域网基本都属于广播式网络
  • 对于高速链路,提高的仅是数据发送速率,而比特在链路上的传播速率。提高发送速率只是为了减少数据的发送时延。

  • 传统上,局域网使用广播技术,而广域网使用交换技术。因此,局域网和广域网的差异在于它们所使用的协议不同

  • 计算机网络最最基本的功能是数据通信

  • 广播式网络共享广播信道(如总线),通常是局域网的一种通信方式

    • 局域网工作在数据链路层,因此不需要网络层,因而也不存在路由选择方式。
    • 但数据链路层使用物理层提供的服务必须通过服务访问点SAP来实现。
  • 注意区分“服务”和“协议”的概念

    • 服务是垂直的,协议是水平的;
    • 服务是由下层通过SAP向上层提供的,协议是控制对等实体之间通信的规则;
    • 只有本层协议的实现,才能保证向上一层提供服务,但并非在一层内完成的全部功能都称为服务,只有那些能够被高一层实体“看得见”的功能才称为服务。
  • 集线器(Hub)是一种多端口的中继器,工作在物理层

计算机网络的组成

从功能组成上看,计算机网络由通信子网和资源子网组成。

  • 通信子网:
    • 各种传输介质、通信设备和相应的网络协议组成;
    • 实现联机数据通信
  • 资源子网
    • 网络资源包括硬件资源、软件资源和数据资源;
    • 实现资源共享功能的设备及其软件的集合。
OSI参考模型
  • OSI的低三层统称为通信子网;高三层统称为资源子网;传输层承上启下。

  • 注意,传输信息所利用的一些物理媒体,如双绞线、光缆、无线信道等,并不在物理层协议之内而在物理层协议下面。

    • 因此,有人把物理媒体当作第0层
  • 数据链路层的功能可以概括为:①成帧;②差错控制;③流量控制;④传输管理。

    • 流量控制:协调A的发送速率和B的接收速率。
  • 网络层的关键问题是对分组进行路由选择,并实现流量控制、拥塞控制、差错控制和网际互联等功能。

  • 传输层的功能是为端到端连接提供可靠的传输服务。

    • 数据链路层提供的是点到点的通信,传输层提供的是端到端的通信
    • 点到点:可以理解为主机到主机之间的通信,一个点指一个硬件地址或IP地址
    • 端到端:指运行在不同主机内的两个进程之间的通信,一个进程由一个端口来标识;
TCP/IP模型
  • 网络接口层,功能类似于OSI的物理层和数据链路层,表示与物理网络的接口。

  • 网际层(主机-主机)是关键,对分组进行路由选择。

    • 但它不保证各个分组的有序到达,有序交付由高层负责。
  • 传输层主要使用以下两种协议

    • 传输控制协议 TCP
    • 用户数据报学习 UDP
两种模型的不同
  • 常考点:
OSI参考模型 TCP/IP模型
网络层 支持无连接和面向连接的通信 仅有一种无连接的通信模式
传输层 仅有面向连接的通信 支持无连接和面向连接两种模式